As integrated circuit (IC) device geometries shrink, lower power-supply voltages are used to prevent device failures. The standard 5-volt supply has dropped to 3 volts and below. Switching from 5 volts to 3 volts results in a 34% reduction in the electric fields carried across a device such as a complementary metal-oxide-semiconductor (CMOS) transistor. The lower power-supply voltage significantly reduces adverse side effects and power consumption and heat generation.
However, it has not been possible to convert all electronic devices to the new lower-volt standard. Thus a system designer often has to use an older 5-volt IC with a newer 3-volt IC. For example, a newer microprocessor may operate at 3 volts, while data buffers attached to that microprocessor may only be available in 5-volt IC's. In the communications field, a newer 3-volt device may have to drive a bus that is also driven by older 5-volt devices.
FIG. 1 illustrates a bus that must be driven by both 3-volt and 5-volt devices. Several drivers 10, 14, 16 can connect to bus 12. However, only one of drivers 10, 14, 16 will be driving bus 12 at any one time. The other drivers will be in a high-impedance state. For example, when driver 14 is driving data out onto bus 12, drivers 10 and 16 are in a high-impedance state and do not drive data out onto bus 12. A driver in a high-impedance state only draws a small amount of current from bus 12, otherwise it could alter the logic level appearing on bus 12. In fact, if it draws a large current when in a high-impedance state it could even damage the driver.
Bus 12 has a low logic-level of about 0 volts but a high logic-level of 3 to 5 volts. Thus older devices such as driver 14, which operate off a 5-volt power supply, drive bus 12 to 0 or 5 volts. Newer devices, such as driver 16, operate off a 3-volt power supply and drive bus 12 to 0 or 3 volts. Thus a high logic-level output from driver 14 will be about 5 volts, while a high logic-level output from driver 16 is about 3 volts.
Newer 3-volt drivers such as driver 10 must be able to connect to bus 12 even when bus 12 is at 5 volts, which is 2 volts higher than the power supply of 3 volts powering driver 10. Since bus 12 operates at high speeds, it is not feasible to mechanically disconnect a driver in a high-impedance state from bus 12, as with a mechanical relay. Electrical circuit means are needed to isolate a driver in a high-impedance state from bus 12.
FIG. 2 is an output buffer using CMOS transistors and gates that can be placed in a high-impedance state. A large n-channel driver transistor 20 pulls bus 12 low, to ground or 0 volts, when it is turned on. The body terminal of transistor 20 is connected to ground, as indicated by the dashed line coming from the channel of transistor 20. Since the source of transistor 20 is also connected to ground, once the gate voltage exceeds the n-channel threshold voltage of about 0.7 volts, transistor 20 will turn on and conduct between its drain (tied to bus 12), and its source (ground).
The gate of transistor 20 is driven by inverter 22, which is driven by NAND gate 26. The output of NAND gate 26 is low, and thus transistor 20 drives bus 12 low, when the enable signal EN is high and the input voltage V.sub.IN is high.
A large p-channel driver transistor 18 pulls bus 12 high, to the power supply or 3 volts, when it is turned on. The body terminal of p-channel transistor 18 is connected to the power supply, as indicated by the dashed line coming from the channel of transistor 18. Since the source of transistor 18 is also connected to the power supply, once the gate voltage is less than the power supply by the magnitude of the p-channel threshold voltage of about -0.7 volts, transistor 18 will turn on and conduct between its source (the power supply), and its drain (tied to bus 12).
The gate of p-channel transistor 18 is driven by inverter 24, which is driven by NOR gate 28. The output of NOR gate 28 is high, and thus p-channel transistor 18 drives bus 12 high, when the inverse enable signal EN is low and the input voltage V.sub.IN is low. Thus V.sub.IN is inverted and driven out on bus 12 when the enable signals EN, EN are active (1 and 0, respectively).